﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 面向对象_访问权限
{
    /*
 * Class内部的权限控制
 */

    //public：类内类外都可以进行访问
    //private：类内才能够进行访问，类外不可访问

    //1 学生对象生成的时候，需要外界传入id跟名字
    //2 外界只能对id/名字进行读取，不能够更改
    class Student
    {
        private int Id = 0;
        private string Name;

        public Student(int id, string name)
        {
            this.Id = id;
            this.Name = name;
        }

        public int getId()
        {
            return Id;
        }

        public string getName()
        {
            return Name;
        }

    }
    internal class Program
    {


        static void Main(string[] args)
        {
            //Student s = new Student(1001, "xiaoli");

            //int id = s.getId();
            //string name = s.getName();

            //Console.WriteLine(id);
            //Console.WriteLine(name);

            Fridge fridge = new Fridge();

            fridge.push("大象");

            Console.Read();
        }
    }

    //private跟public也可以用来修饰方法
    //private：当前方法只能够在类内方法内部调用
    //public：当前方法可以在类内或者类外方法内进行调用
    class Fridge
    {
        public void push(string animalName)
        {
            opendoor();
            //put虽然已经是private了，但是可以在类内方法内部调用
            put(animalName);
            closedoor();
        }

        private void opendoor() 
        {
            Console.WriteLine("开冰箱门");
        }

        private void closedoor()
        {
            Console.WriteLine("关冰箱门");
        }

        private void put(string animalName)
        {
            Console.WriteLine("将{0}放入冰箱",animalName);
        }

    }
}
